1260D - A Game with Traps - CodeForces Solution


binary search dp greedy sortings *1900

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=2e5+3;
int m,n,k,t,a[N];
vector<pair<int ,int >>sum[N];
bool check(int mid) {
    int ans=0,now=0;
	for(int i=1;i<=n;i++) {
		for(auto [x,y]: sum[i]) 
			if(y>a[mid]) now=max(now,x);
        if(i<=now) ans+=2;
	}
	if(ans+n+1<=t) return 1;
	else return 0;
}
void solve() {
	cin>>m>>n>>k>>t;
	for(int i=1; i<=m; i++) cin>>a[i];
	for(int i=1; i<=k; i++) {
		int l,r,x;
		cin>>l>>r>>x;
		sum[l].push_back({r,x});
	}
	sort(a+1,a+m+1,greater<int>());
    a[0]=1e9;
	int l=0,r=m;
	while(l<r) {
		int mid=(l+r+1)/2;
		if(check(mid)) l=mid;
		else r=mid-1;
	}
	cout<<l<<endl;
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
//	int t;	cin>>t;	while(t--)
	solve();
	return 0;
}



Comments

Submit
0 Comments
More Questions

1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array
1594B - Special Numbers
1614A - Divan and a Store
2085. Count Common Words With One Occurrence
2089. Find Target Indices After Sorting Array
2090. K Radius Subarray Averages
2091. Removing Minimum and Maximum From Array
6. Zigzag Conversion
1612B - Special Permutation
1481. Least Number of Unique Integers after K Removals
1035. Uncrossed Lines
328. Odd Even Linked List
1219. Path with Maximum Gold
1268. Search Suggestions System
841. Keys and Rooms